package com.zl;

import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
import org.junit.Test;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.Protocol;

/**
 * 连接池的操作
 */
public class ConnectionPool {
    /**
     * 普通创建
     */
    @Test
    public void pool() {
        //创建连接池
        //参数：  连接池配置、host、port、超时时间、密码、数据库
        JedisPool jedisPool = new JedisPool(new GenericObjectPoolConfig(), "127.0.0.1", 6379, Protocol.DEFAULT_TIMEOUT, "DEVPASSWORD", 3);
        //获取jedis 对象
        Jedis jedis = jedisPool.getResource();
        System.out.println(jedis.get("name"));
        //还给连接池
        jedis.close();
    }

    /**
     * 配置连接池信息
     */
    @Test
    public void configPool() {
        GenericObjectPoolConfig config = new GenericObjectPoolConfig();
        config.setMaxTotal(10); //连接池最大的连接数
        config.setMaxIdle(5); //最大空闲的连接数
        config.setMinIdle(5);//最小空闲连接对象
        config.setMaxWaitMillis(1000);//连接池被耗尽之后多久获取不到连接报异常
        JedisPool jedisPool = new JedisPool(config, "127.0.0.1", 6379, Protocol.DEFAULT_TIMEOUT, "DEVPASSWORD",3);

        Jedis jedis = jedisPool.getResource();
        System.out.println(jedis.get("name"));
        //还给连接池
        jedis.close();
        jedisPool.close();

    }


}
